package modelo;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.nio.charset.Charset;
import java.util.ArrayList;

public class LectorClientes {
	
	private String nombreArchivo;
	
	public LectorClientes() {
		nombreArchivo = "clientes.csv";
	}
	
	public void setArchivo(String nombre) {
		nombreArchivo = nombre;
	}
	
	public ArrayList<Cliente> cargarClientes() {
		
		InputStream fis;
		BufferedReader br;
		String line;
		ArrayList<Cliente> clientes = new ArrayList<Cliente>();
		try {
			fis = new FileInputStream(nombreArchivo);
			br = new BufferedReader(new InputStreamReader(fis, Charset.forName("UTF-8")));
			while ((line = br.readLine()) != null) {
				String atributos[] = line.split(";");				
				Cliente nuevo = new Cliente(atributos[0], atributos[1],  
						Integer.parseInt(atributos[2]), Integer.parseInt(atributos[3]) );
				clientes.add(nuevo);
			}
			br.close();
			fis.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return clientes;
	}
	
	public void guardarClientes(ArrayList<Cliente> clientes) {
		
		OutputStream fis;
		BufferedWriter br;
		String line;

		try {
			fis = new FileOutputStream(nombreArchivo);
			br = new BufferedWriter(new OutputStreamWriter(fis, Charset.forName("UTF-8")));
			
			for(Cliente cliente: clientes){
				line = cliente.getNombre() + ";" + cliente.getApellido() + ";" + Integer.toString(cliente.getDni())
						+ ";" + Integer.toString(cliente.getPuntosAcumulados());

				br.write(line);
				br.newLine();
			}
			
			br.close();
			fis.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

}




